import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import elib.Kierownik;
import elib.Osoba;


@WebServlet("/AddWorkerServlet")
public class AddWorkerServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

    public AddWorkerServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.setContentType("text/html;charset=UTF-8");
		PrintWriter out = response.getWriter();
		//pobieranie sesji
		HttpSession session = request.getSession();
		//pobieranie parametrow z formularza
		String imie = request.getParameter("name");
		String nazwisko = request.getParameter("surname");
		String pesel = request.getParameter("pesel");
		String login = request.getParameter("login");
		String haslo1 = request.getParameter("password1");
		String haslo2 = request.getParameter("password2");
		//sprawdzamy czy udalo sie pobrac sesje
		if (session != null) {
			//pobieramy argument sesji
			Osoba osoba = (Osoba) session.getAttribute("osoba");
			//sprawdzam czy argument sesji instnieje
			if (osoba != null && osoba instanceof Kierownik) {
					//sprawdzanie czy hasla sie zgadzaja
				if(haslo1.equals(haslo2) && checkPesel(pesel) && pesel.length()==11) {
					//wywolanie funkcji dodawania
					((Kierownik) osoba).dodajPracownika(imie, nazwisko, pesel, login, haslo1);
				}
				//jako ze wiemy ze jestesmy na adminie to wracamy bezposrednio
				response.sendRedirect("admin.jsp?page=addWorker");
			} else
				response.sendRedirect("index.jsp");
		} else
			response.sendRedirect("index.jsp");
		out.close();
	}
	public static boolean checkPesel(String p){	
		String pesel=p;
		int checkSum = ((pesel.charAt(0)-48)+(pesel.charAt(1)-48)*3+(pesel.charAt(2)-48)*7+(pesel.charAt(3)-48)*9
				+(pesel.charAt(4)-48)+(pesel.charAt(5)-48)*3+(pesel.charAt(6)-48)*7+(pesel.charAt(7)-48)*9
				+(pesel.charAt(8)-48)+(pesel.charAt(9)-48)*3); // obliczanie sumy kontrolnej pierwszych 10 cyfr
		int control = 10 -(pesel.charAt(10)-48);
		if(control == checkSum%10){
			//System.out.println("Pesel poprawny");
			return true;
		}else{
			//System.out.println("Pesel nieporpawny");
			return false;}
		};
		

}

